// 人脸识别服务专用HTTP请求封装
import { getToken, clearAuth } from './auth.js'
import apiConfig from '@/config/api.js'

/**
 * 发起人脸识别服务HTTP请求
 */
export function faceRequest(options) {
	return new Promise((resolve, reject) => {
		// 获取token
		const token = getToken()
		
		uni.request({
			url: apiConfig.faceApiUrl + options.url,
			method: options.method || 'GET',
			data: options.data || {},
			header: {
				'Content-Type': 'application/json',
				'Authorization': token ? `Bearer ${token}` : '',
				...options.header
			},
			success: (res) => {
				if (res.statusCode === 200) {
					// 请求成功
					// Python人脸识别服务使用 success: true 格式
					if (res.data.success === true) {
						resolve(res.data)
					} else {
						// 业务错误
						const errorMessage = res.data.message || '请求失败'
						uni.showToast({
							title: errorMessage,
							icon: 'none'
						})
						reject(res.data)
					}
				} else if (res.statusCode === 401) {
					// token过期或未登录
					uni.showToast({
						title: '登录已过期，请重新登录',
						icon: 'none'
					})
					clearAuth()
					uni.reLaunch({
						url: '/pages/login/login'
					})
					reject(res.data)
				} else {
					// 其他错误
					const errorMessage = res.data.message || '请求失败'
					uni.showToast({
						title: errorMessage,
						icon: 'none'
					})
					reject(res.data)
				}
			},
			fail: (err) => {
				uni.showToast({
					title: '网络请求失败',
					icon: 'none'
				})
				reject(err)
			}
		})
	})
}